The usefulness of any given device is determined in part by the degrees of freedom provided by the control mechanisms for the device. For example, a light that merely has an on/off switch is not as versatile as a light that allows an entire range of illumination through a dimmer switch. Systems that supply a wide range of control options and mechanisms are generally more desirable from a user's standpoint.
Conceptually, controllers may be broken down into a variety of broad categories. Controllers may either be physically attached to the controlled device or they may be remote and control the device from a distance. Controllers may be either dedicated to control a single device or adaptable to control a variety of different devices. Remote, adaptable controllers generally allow the user a greater range of use than dedicated, attached controllers. From across the room, a viewer is able to switch channels on a television set with a dedicated remote controller without physical exertion. Such a viewer might be better served by an adaptable controller that could also control other devices such as lighting, room temperature, stereo, and the like.
As user environments become more complex, the need for more versatile control mechanisms becomes greater. Users would like to feel that the devices at their disposal exist to aid them in their tasks--not monopolize their attention. In a sense, the best controller is one that provides the user the greatest range of functionality without requiring a great deal of conscious effort. That is, the more the control features blend into the background or become tacit, the better.
Current environments that facilitate human interactions, such as workplaces, homes, airports, commercial areas and the like, have seen increasing complexity and automation. Today, a typical environment may include many resources such as workstations, telephones, televisions, stereos, radios, VCRs, fax machines, printers, copiers, scanners, modems, and the like. These relatively new computational and communication resources supplement other environmental resources typically found in work and living spaces, such as lighting, air conditioning and the like. It is desirable from a user standpoint that all of these devices work together to create an environment conducive to achieving the task at hand.
While today's office comprises a large collection of devices needing control, that collection promises to expand in the future. One vision of the future office is found in Dr. Mark Weiser's article "The Computer for the 21st Century" (Scientific American, September 1991 issue). Dr. Weiser describes a work place in which there would be literally hundreds of computers per room. These computers would be so well integrated into the office environment that their presence would not be consciously noted.
This "ubiquitous computing" paradigm envisions a hierarchy of integrated computers in terms of size and performance. At the lowest end, "Tabs" and "Badges", currently at a few inches square, are the smallest components of ubiquitous computing. Tabs and Badges perform basic functions in a ubiquitous computer setting. For example, Badges are worn by people inhabiting this type of environment. As a wearer of the Badge walks from room to room, the Badge would communicate to the room, through a wireless medium, the presence of the person. Automatically, the room might make adjustments for the person, such as calling up the person's desktop onto a computer workstation located in the room. Additionally, the building itself could keep account of an individual's movements. Phone calls could be forwarded to the room where the individual is located. Likewise, security doors would open up for certain individuals and not for others.
At the other end of the hierarchy, "Pads" and "Boards" are computers analogous to sheets of paper and blackboards respectively. These computers, together with Tabs, work interactively with each other to form a seamless web of computing in the work place. Typically, in any given room, hundreds of Tabs may work and communicate with ten or twenty Pads and one or two Boards. An implementation of a "ubiquitous computing" environment, as envisioned by Dr. Weiser, is discussed in greater detail in commonly assigned U.S. patent application Ser. No. 08/100,655, entitled "A METHOD AND SYSTEM FOR MAINTAINING PROCESSING CONTINUITY TO MOBILE COMPUTERS IN A WIRELESS NETWORK", filed Jul. 30, 1993 by Want et al., which is herein incorporated by reference. Want et al. disclose a basic wireless network architecture in which each mobile computer on the network has an agent. An agent is a process, resident on a host on the network, that is dedicated to serving the needs of the mobile unit. For example, the agent is responsible for knowing the location of its assigned mobile unit. Additionally, all communications routed to and from a mobile computer go through its agent.
In its broadest sense, a ubiquitous computing environment has many aspects that must be considered in order for it to provide a meaningful work environment for its users. For example, one aspect of a ubiquitous computing environment is the ability of one device to control another. Devices, in such an environment, can be subdivided into the broad classes of controllers and resources. The previously mentioned Tab, carried by a user from room to room, may serve as a remote, adaptable mobile controller for a wide range of resources within its environment. Mobile controllers may essentially function as a mobile user interface, permitting users to sense and control resources remotely. For example, it would be desirable for a Tab with a touch screen to connect to a room's thermostat and either display the current temperature or, at the user's request, adjust the thermostat to a desired temperature.
One implementation of a control allocation scheme is detailed in commonly assigned U.S. patent application Ser. No. 08/161,968 (file number as yet unassigned--Attorney Docket Number D793335), entitled "SELECTION, CONTROL AND OWNERSHIP OF PARTICULAR DEVICES IN A MULTIPLE COMPUTER SYSTEM BASED ON CONTEXT AND ENVIRONMENT IN PROXIMITY TO A USER OR DEVICE", filed on Dec. 3, 1993 by Theliner et al., which is herein incorporated by reference. Theimer et al. describe an environment populated by users and computational devices whereby control of devices by a particular user is made in the context of the user. User context is comprised of the user's immediate surroundings (e.g. what device and other users are proximal to the particular user) and the preferences and/or policies of the devices and user.
A typical scenario using Theimer et al.'s system might involve a user who wants to print a private document having special graphics embedded in it. Because the document is private, the user wants the document to be printed where ever the user is located and, further, to be printed only when no one else is around. Additionally, the printer must be able to handle the special graphics. Theimer et al.'s system would wait until the context specified in the request is satisfied in the environment before action is taken. Specifically, the system would locate the user and all printers proximal to the user that might satisfy the request. Additionally, the system would check to see if other users are proximal to the requesting user before granting the request.
The system as disclosed by Theimer et al. identifies user and device policies as constraints to be considered when granting requests. These policies may be implemented as a set of IF-THEN rules as the instructions of an inference engine. In such an implementation, if the current context of the environment satisfies the conditional, then the system executes the actions specified in the rule.
Limiting system constraints, however, to only users and devices policies does not necessarily lead to meaningful or conducive work environments for its users. Users normally interact with each other in ways which are conducive to accomplishing a collaborative task. More often than not, collaborative efforts take place within a certain proximity, such as someone's room or office. Typically, the resources located in the room are involved in performing the task. The users, attempting to perform the task, naturally seek to use these resources to effect a solution. Thus, requests from the various users for the room's resources will be competing and, in some cases, conflicting.
For example, suppose a group of users, located in an office room, are collaboratively working to complete a proposal for an architectural project. The various tasks involved in completing the proposal might include: wordprocessing, graphic display and manipulation, computation (e.g. for deciding budgeting), and printing. In Theimer et al.'s system, any and all users are free to "grab" resources at will and control them indefinitely. This possibility may hinder the collaborative work required to efficiently finish the project--one user might simultaneously control graphical and printing devices while not necessarily using either to its peak efficiency. Thus, a "greedy" user may make other users idle at some points during the task.
Likewise, if the proposal is to be written by one primary user with some input from others, it might be desirable from the primary user's standpoint to have a mechanism in place to have priority control over the devices in the room after sufficient input has been culled.
Part of the problem is that users and devices generally do not have a global (or even a regional) view of competing requests for resources. Without such a view, allocations of resources made to "greedy" controllers and/or users may actually hinder the collaborate nature of the work being done in a proximal region.
Thus, there is a need for a system which arbitrates user interactions and requests for resources and makes allocation decisions based upon proximal region policies that tend to aid multiple users engaged in collaborate tasks or in discrete tasks that require a sharing of resources to accommodate all users.